Multi path load balancing is a technology designed to achieve high throughput, low latency, and high availability for data center networks. A commonly used solution, Equal Cost Multi Path (ECMP), has been found to be unsatisfactory for data center networks. A reason ECMP has been found unsatisfactory is that ECMP applies a statically configured hash function to selected packet header fields to decide the egress port of a packet, thus treating big packet flows the same way as small packets flows. If multiple big packet flows are hashed to the same port, and the aggregated rate of these big packet flows exceeds the port utilization, then some of these big packet flows cannot be assigned to the port, which leads to lower port utilization and lower throughput.
Dynamic load balancing schemes rely on flowlet switching. Generally, packets of a given packet flow are divided into many different packet groups, where a packet group consists of a burst of packets for the given packet flow with little inter-packet gap. Such a packet group is referred to as a flowlet. There are typically large enough time gaps between two flowlets of the same packet flow, such that individual flowlets in a packet flow can be switched to different network paths without causing out-of-order packet transmission. Flowlet switching can enhance throughput of data center networks. However, existing solutions may be limited to a two-tier leaf-spine data center network topology; may rely on proprietary packet formats; may not be applicable to layer 2 or layer 3 packets; and/or may require each leaf switch to maintain information about the status of all network paths involving the leaf switch's egress ports, resulting in high processing and memory costs.